/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package actividad4;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Scanner;

/**
 *
 * @author Mañana
 */
public class Apartado1 {

    private static String[] futbolistas = new String[10];
    private static File nombrefichero2;

    public static void main(String[] args) throws IOException {
        futbolistas[0] = "Ronaldo";
        futbolistas[1] = "Isco";
        futbolistas[2] = "Bale";
        futbolistas[3] = "Casillas";
        futbolistas[4] = "Sergio Ramos";
        futbolistas[5] = "Xabi Alonso";
        futbolistas[6] = "Di María";
        futbolistas[7] = "Modric";
        futbolistas[8] = "Diego Lopez";
        futbolistas[9] = "Carvajal";
        try {
            declaracion();
        } catch (FileNotFoundException e) {
            System.out.println("Error. Archivo no Encontrado.");
        };
    }

    //DECLARAMOS EL ARCHIVO
    private static void declaracion() throws FileNotFoundException, IOException {
        //Indicamos donde esta el archivo
        System.out.println("Introduzca la ruta.");
        Scanner teclado = new Scanner(System.in);
        String nombrefichero = teclado.next();
        nombrefichero2 = new File(nombrefichero);
        //COMPROBAMOS SI EL ARCHIVO EXISTE
        if (nombrefichero2.exists()) {
            System.out.println("Escoja Opcion: 1.Añadir al Final --- 2.Borrarlo --- 3.Escribir Futbolistas");
            Scanner teclado3 = new Scanner(System.in);
            int opc = teclado.nextInt();
            switch (opc) {
                //ESCRIBIMOS AL FINAL
                case (1):
                    alFinal();
                    break;
                // SOBREESCRIBIMOS EL ARCHIVO
                case (2):
                    sobreEscribir();
                    break;
                case (3):
                    escribirFutbolistas();
                    break;
            }
        }
    }

// metodo que escribe al final del texto
    private static void alFinal() throws IOException {
        BufferedWriter out = null;
        try {
            out = new BufferedWriter(new FileWriter(nombrefichero2, true));
            System.out.println("Introduzca el texto que quiere añadir.");
            Scanner teclado2 = new Scanner(System.in);
            String texto = teclado2.next();
            out.write(texto);
        } catch (IOException e) {
            // error processing code   
        } finally {
            if (out != null) {
                out.close();
            }
        }
    }

// metodo que sobreescribe el archivo borrando lo que tenias y añadiendo lo que le indiquies
    private static void sobreEscribir() throws IOException {
        if (nombrefichero2 == null) {
            System.out.println("El Archivo es nulo");
        }
        if (!nombrefichero2.isFile()) {
            System.out.println("Es un Directorio");
        }
        if (!nombrefichero2.canWrite()) {
            System.out.println("No se puede escribir");
        } else {
            Writer output = new BufferedWriter(new FileWriter(nombrefichero2));
            try {
                System.out.println("Introduzca el Contenido.");
                Scanner teclado5 = new Scanner(System.in);

                String contenido = teclado5.next();
                output.write(contenido);
            } finally {
                output.close();
            }
        }
    }

    //Metodo que escribe el array de futbolistas del principio
    private static void escribirFutbolistas() throws IOException {
        Writer output = new BufferedWriter(new FileWriter(nombrefichero2));
        try {
            for (int i = 0; i < futbolistas.length; i++) {
                output.write(futbolistas[i] + "\n");
            } 
        } finally {
            output.close();
        }
    }
}
